Traditionally, user input to a computer system includes a keyboard having dedicated keys or buttons. The operation of each key or button may be tied to a particular function or command. However, traditional keyboard systems lack the flexibility to accommodate expansive features offered by newer devices, operating systems, and software. A traditional keyboard may include some keys that may be used to perform multiple or alternative functions by pressing the key at the same time as a “shift” or “function” button. However, such configurations provide limited flexibility and can be awkward or non-intuitive for a user to operate.